package com.runa.monitor.platinterface.netservice.connect;

import com.runa.monitor.platinterface.netservice.connect.commstatus.CommStatus;
import com.runa.protocol.dto.IRequestData;

import java.util.List;

/**
 * @author zhuj
 */
public interface IRequest<T> {

    T getRequestData();

    IResponse getResponse();

    boolean beReady();

    void reset();

    void cancel(CommStatus status);

    boolean check();

    int flag(int pos);

    void flag(int ...flag);

    void collective(List<IRequest<IRequestData>> collective);

    List<IRequest<IRequestData>> collective();

}
